import java.util.Arrays;

public class DuplicateZero {
    public static void duplicateZero(int[] arr) {

        //处理特殊情况
        if(arr == null ||arr.length == 0) {
            return;
        }

        if(arr.length == 1) {
            return;
        }

        int left = 0;
        int right = arr.length - 1 - 1;


        for (;left < arr.length;left++) {

            if (arr[left] == 0) {
                //所有元素向右平移
                while(right >= left) {
                    arr[right + 1] = arr[right];
                    right--;
                }
                right = arr.length - 1 - 1;
                left++;
            }
        }
    }

    public static int[] duplicateZero1(int[] nums) {
        //处理特殊情况
        if (nums == null || nums.length == 0) {
            return null;
        }

        if (nums.length == 1) {
            return nums;
        }

        //定义一个辅助数组
        int[] result = new int[nums.length];


        int j = 0;
        //定义两个指针，一个指针用cur来遍历原数组
        //一个指针用来遍历辅助数组
        for (int i = 0; i < nums.length; i++){

            //判断i所指的下标的值
            if (nums[i] == 0 && j < result.length) {
                //进行复写操作

            }


        }
        return null;
    }

    public static void main(String[] args) {
        int[] arr = new int[]{1,2,3};
        duplicateZero(arr);
        System.out.println(Arrays.toString(arr));
    }
}
